﻿using System;

namespace Tabula
{
    /// <summary>
    /// Unicode extensions.
    /// <para>As of Unicode v13.0.</para>
    /// </summary>
    public static class UnicodeExtensions
    {
        /// <summary>
        /// Gets the character abbreviated type (i.e. 'BN', 'S', 'NSM', 'LRO'), used in the Unicode Bidirectional Algorithm.
        /// </summary>
        /// <param name="c">The character value.</param>
        public static string GetDirectionality(this char c)
        {
            var val = char.ConvertToUtf32(c.ToString(), 0);
            return GetDirectionality(val);
        }

        /// <summary>
        /// Gets the character abbreviated type (i.e. 'BN', 'S', 'NSM', 'LRO'), used in the Unicode Bidirectional Algorithm.
        /// </summary>
        /// <param name="val">The integer value of a char.</param>
        public static string GetDirectionality(int val)
        {
            if (val < 0)
            {
                throw new ArgumentOutOfRangeException("Char integer value needs to be more or equal to 0.", nameof(val));
            }

            // need to add check for max value

            if ((val >= 0 && val <= 8) || (val >= 14 && val <= 27) || (val >= 127 && val <= 132) || (val >= 134 && val <= 159) || (val == 173) || (val == 6158) || (val >= 8203 && val <= 8205) || (val >= 8288 && val <= 8292) || (val >= 8298 && val <= 8303) || (val == 65279) || (val >= 113824 && val <= 113827) || (val >= 119155 && val <= 119162) || (val == 917505) || (val >= 917536 && val <= 917631))
                return "BN";
            else if ((val == 9) || (val == 11) || (val == 31))
                return "S";
            else if ((val == 10) || (val == 13) || (val >= 28 && val <= 30) || (val == 133) || (val == 8233))
                return "B";
            else if ((val == 12) || (val == 32) || (val == 5760) || (val >= 8192 && val <= 8202) || (val == 8232) || (val == 8287) || (val == 12288))
                return "WS";
            else if ((val >= 33 && val <= 34) || (val >= 38 && val <= 42) || (val >= 59 && val <= 64) || (val >= 91 && val <= 96) || (val >= 123 && val <= 126) || (val == 161) || (val >= 166 && val <= 169) || (val >= 171 && val <= 172) || (val >= 174 && val <= 175) || (val == 180) || (val >= 182 && val <= 184) || (val >= 187 && val <= 191) || (val == 215) || (val == 247) || (val >= 697 && val <= 698) || (val >= 706 && val <= 719) || (val >= 722 && val <= 735) || (val >= 741 && val <= 749) || (val >= 751 && val <= 767) || (val >= 884 && val <= 885) || (val == 894) || (val >= 900 && val <= 901) || (val == 903) || (val == 1014) || (val == 1418) || (val >= 1421 && val <= 1422) || (val >= 1542 && val <= 1543) || (val >= 1550 && val <= 1551) || (val == 1758) || (val == 1769) || (val >= 2038 && val <= 2041) || (val >= 3059 && val <= 3064) || (val == 3066) || (val >= 3192 && val <= 3198) || (val >= 3898 && val <= 3901) || (val >= 5008 && val <= 5017) || (val == 5120) || (val >= 5787 && val <= 5788) || (val >= 6128 && val <= 6137) || (val >= 6144 && val <= 6154) || (val == 6464) || (val >= 6468 && val <= 6469) || (val >= 6622 && val <= 6655) || (val == 8125) || (val >= 8127 && val <= 8129) || (val >= 8141 && val <= 8143) || (val >= 8157 && val <= 8159) || (val >= 8173 && val <= 8175) || (val >= 8189 && val <= 8190) || (val >= 8208 && val <= 8231) || (val >= 8245 && val <= 8259) || (val >= 8261 && val <= 8286) || (val >= 8316 && val <= 8318) || (val >= 8332 && val <= 8334) || (val >= 8448 && val <= 8449) || (val >= 8451 && val <= 8454) || (val >= 8456 && val <= 8457) || (val == 8468) || (val >= 8470 && val <= 8472) || (val >= 8478 && val <= 8483) || (val == 8485) || (val == 8487) || (val == 8489) || (val >= 8506 && val <= 8507) || (val >= 8512 && val <= 8516) || (val >= 8522 && val <= 8525) || (val >= 8528 && val <= 8543) || (val >= 8585 && val <= 8587) || (val >= 8592 && val <= 8721) || (val >= 8724 && val <= 9013) || (val >= 9083 && val <= 9108) || (val >= 9110 && val <= 9254) || (val >= 9280 && val <= 9290) || (val >= 9312 && val <= 9351) || (val >= 9450 && val <= 9899) || (val >= 9901 && val <= 10239) || (val >= 10496 && val <= 11123) || (val >= 11126 && val <= 11157) || (val >= 11159 && val <= 11263) || (val >= 11493 && val <= 11498) || (val >= 11513 && val <= 11519) || (val >= 11776 && val <= 11858) || (val >= 11904 && val <= 11929) || (val >= 11931 && val <= 12019) || (val >= 12032 && val <= 12245) || (val >= 12272 && val <= 12283) || (val >= 12289 && val <= 12292) || (val >= 12296 && val <= 12320) || (val == 12336) || (val >= 12342 && val <= 12343) || (val >= 12349 && val <= 12351) || (val >= 12443 && val <= 12444) || (val == 12448) || (val == 12539) || (val >= 12736 && val <= 12771) || (val >= 12829 && val <= 12830) || (val >= 12880 && val <= 12895) || (val >= 12924 && val <= 12926) || (val >= 12977 && val <= 12991) || (val >= 13004 && val <= 13007) || (val >= 13175 && val <= 13178) || (val >= 13278 && val <= 13279) || (val == 13311) || (val >= 19904 && val <= 19967) || (val >= 42128 && val <= 42182) || (val >= 42509 && val <= 42511) || (val == 42611) || (val >= 42622 && val <= 42623) || (val >= 42752 && val <= 42785) || (val == 42888) || (val >= 43048 && val <= 43051) || (val >= 43124 && val <= 43127) || (val >= 43882 && val <= 43883) || (val >= 64830 && val <= 64831) || (val == 65021) || (val >= 65040 && val <= 65049) || (val >= 65072 && val <= 65103) || (val == 65105) || (val == 65108) || (val >= 65110 && val <= 65118) || (val >= 65120 && val <= 65121) || (val >= 65124 && val <= 65126) || (val == 65128) || (val == 65131) || (val >= 65281 && val <= 65282) || (val >= 65286 && val <= 65290) || (val >= 65307 && val <= 65312) || (val >= 65339 && val <= 65344) || (val >= 65371 && val <= 65381) || (val >= 65506 && val <= 65508) || (val >= 65512 && val <= 65518) || (val >= 65529 && val <= 65533) || (val == 65793) || (val >= 65856 && val <= 65932) || (val >= 65936 && val <= 65948) || (val == 65952) || (val == 67871) || (val >= 68409 && val <= 68415) || (val >= 69714 && val <= 69733) || (val >= 71264 && val <= 71276) || (val >= 73685 && val <= 73692) || (val >= 73697 && val <= 73713) || (val == 94178) || (val >= 119296 && val <= 119361) || (val == 119365) || (val >= 119552 && val <= 119638) || (val == 120539) || (val == 120597) || (val == 120655) || (val == 120713) || (val == 120771) || (val >= 126704 && val <= 126705) || (val >= 126976 && val <= 127019) || (val >= 127024 && val <= 127123) || (val >= 127136 && val <= 127150) || (val >= 127153 && val <= 127167) || (val >= 127169 && val <= 127183) || (val >= 127185 && val <= 127221) || (val >= 127243 && val <= 127247) || (val == 127279) || (val >= 127338 && val <= 127343) || (val == 127405) || (val >= 127584 && val <= 127589) || (val >= 127744 && val <= 128727) || (val >= 128736 && val <= 128748) || (val >= 128752 && val <= 128764) || (val >= 128768 && val <= 128883) || (val >= 128896 && val <= 128984) || (val >= 128992 && val <= 129003) || (val >= 129024 && val <= 129035) || (val >= 129040 && val <= 129095) || (val >= 129104 && val <= 129113) || (val >= 129120 && val <= 129159) || (val >= 129168 && val <= 129197) || (val >= 129200 && val <= 129201) || (val >= 129280 && val <= 129400) || (val >= 129402 && val <= 129483) || (val >= 129485 && val <= 129619) || (val >= 129632 && val <= 129645) || (val >= 129648 && val <= 129652) || (val >= 129656 && val <= 129658) || (val >= 129664 && val <= 129670) || (val >= 129680 && val <= 129704) || (val >= 129712 && val <= 129718) || (val >= 129728 && val <= 129730) || (val >= 129744 && val <= 129750) || (val >= 129792 && val <= 129938) || (val >= 129940 && val <= 129994))
                return "ON";
            else if ((val >= 35 && val <= 37) || (val >= 162 && val <= 165) || (val >= 176 && val <= 177) || (val == 1423) || (val >= 1545 && val <= 1546) || (val == 1642) || (val >= 2546 && val <= 2547) || (val == 2555) || (val == 2801) || (val == 3065) || (val == 3647) || (val == 6107) || (val >= 8240 && val <= 8244) || (val >= 8352 && val <= 8383) || (val == 8494) || (val == 8723) || (val >= 43064 && val <= 43065) || (val == 65119) || (val >= 65129 && val <= 65130) || (val >= 65283 && val <= 65285) || (val >= 65504 && val <= 65505) || (val >= 65509 && val <= 65510) || (val >= 73693 && val <= 73696) || (val == 123647))
                return "ET";
            else if ((val == 43) || (val == 45) || (val >= 8314 && val <= 8315) || (val >= 8330 && val <= 8331) || (val == 8722) || (val == 64297) || (val >= 65122 && val <= 65123) || (val == 65291) || (val == 65293))
                return "ES";
            else if ((val == 44) || (val >= 46 && val <= 47) || (val == 58) || (val == 160) || (val == 1548) || (val == 8239) || (val == 8260) || (val == 65104) || (val == 65106) || (val == 65109) || (val == 65292) || (val >= 65294 && val <= 65295) || (val == 65306))
                return "CS";
            else if ((val >= 48 && val <= 57) || (val >= 178 && val <= 179) || (val == 185) || (val >= 1776 && val <= 1785) || (val == 8304) || (val >= 8308 && val <= 8313) || (val >= 8320 && val <= 8329) || (val >= 9352 && val <= 9371) || (val >= 65296 && val <= 65305) || (val >= 66273 && val <= 66299) || (val >= 120782 && val <= 120831) || (val >= 127232 && val <= 127242) || (val >= 130032 && val <= 130041))
                return "EN";
            //else if ((val >= 65 && val <= 90) || (val >= 97 && val <= 122) || (val == 170) || (val == 181) || (val == 186) || (val >= 192 && val <= 214) || (val >= 216 && val <= 246) || (val >= 248 && val <= 696) || (val >= 699 && val <= 705) || (val >= 720 && val <= 721) || (val >= 736 && val <= 740) || (val == 750) || (val >= 880 && val <= 883) || (val >= 886 && val <= 887) || (val >= 890 && val <= 893) || (val == 895) || (val == 902) || (val >= 904 && val <= 906) || (val == 908) || (val >= 910 && val <= 929) || (val >= 931 && val <= 1013) || (val >= 1015 && val <= 1154) || (val >= 1162 && val <= 1327) || (val >= 1329 && val <= 1366) || (val >= 1369 && val <= 1417) || (val >= 2307 && val <= 2361) || (val == 2363) || (val >= 2365 && val <= 2368) || (val >= 2377 && val <= 2380) || (val >= 2382 && val <= 2384) || (val >= 2392 && val <= 2401) || (val >= 2404 && val <= 2432) || (val >= 2434 && val <= 2435) || (val >= 2437 && val <= 2444) || (val >= 2447 && val <= 2448) || (val >= 2451 && val <= 2472) || (val >= 2474 && val <= 2480) || (val == 2482) || (val >= 2486 && val <= 2489) || (val >= 2493 && val <= 2496) || (val >= 2503 && val <= 2504) || (val >= 2507 && val <= 2508) || (val == 2510) || (val == 2519) || (val >= 2524 && val <= 2525) || (val >= 2527 && val <= 2529) || (val >= 2534 && val <= 2545) || (val >= 2548 && val <= 2554) || (val >= 2556 && val <= 2557) || (val == 2563) || (val >= 2565 && val <= 2570) || (val >= 2575 && val <= 2576) || (val >= 2579 && val <= 2600) || (val >= 2602 && val <= 2608) || (val >= 2610 && val <= 2611) || (val >= 2613 && val <= 2614) || (val >= 2616 && val <= 2617) || (val >= 2622 && val <= 2624) || (val >= 2649 && val <= 2652) || (val == 2654) || (val >= 2662 && val <= 2671) || (val >= 2674 && val <= 2676) || (val == 2678) || (val == 2691) || (val >= 2693 && val <= 2701) || (val >= 2703 && val <= 2705) || (val >= 2707 && val <= 2728) || (val >= 2730 && val <= 2736) || (val >= 2738 && val <= 2739) || (val >= 2741 && val <= 2745) || (val >= 2749 && val <= 2752) || (val == 2761) || (val >= 2763 && val <= 2764) || (val == 2768) || (val >= 2784 && val <= 2785) || (val >= 2790 && val <= 2800) || (val == 2809) || (val >= 2818 && val <= 2819) || (val >= 2821 && val <= 2828) || (val >= 2831 && val <= 2832) || (val >= 2835 && val <= 2856) || (val >= 2858 && val <= 2864) || (val >= 2866 && val <= 2867) || (val >= 2869 && val <= 2873) || (val >= 2877 && val <= 2878) || (val == 2880) || (val >= 2887 && val <= 2888) || (val >= 2891 && val <= 2892) || (val == 2903) || (val >= 2908 && val <= 2909) || (val >= 2911 && val <= 2913) || (val >= 2918 && val <= 2935) || (val == 2947) || (val >= 2949 && val <= 2954) || (val >= 2958 && val <= 2960) || (val >= 2962 && val <= 2965) || (val >= 2969 && val <= 2970) || (val == 2972) || (val >= 2974 && val <= 2975) || (val >= 2979 && val <= 2980) || (val >= 2984 && val <= 2986) || (val >= 2990 && val <= 3001) || (val >= 3006 && val <= 3007) || (val >= 3009 && val <= 3010) || (val >= 3014 && val <= 3016) || (val >= 3018 && val <= 3020) || (val == 3024) || (val == 3031) || (val >= 3046 && val <= 3058) || (val >= 3073 && val <= 3075) || (val >= 3077 && val <= 3084) || (val >= 3086 && val <= 3088) || (val >= 3090 && val <= 3112) || (val >= 3114 && val <= 3129) || (val == 3133) || (val >= 3137 && val <= 3140) || (val >= 3160 && val <= 3162) || (val >= 3168 && val <= 3169) || (val >= 3174 && val <= 3183) || (val == 3191) || (val >= 3199 && val <= 3200) || (val >= 3202 && val <= 3212) || (val >= 3214 && val <= 3216) || (val >= 3218 && val <= 3240) || (val >= 3242 && val <= 3251) || (val >= 3253 && val <= 3257) || (val >= 3261 && val <= 3268) || (val >= 3270 && val <= 3272) || (val >= 3274 && val <= 3275) || (val >= 3285 && val <= 3286) || (val == 3294) || (val >= 3296 && val <= 3297) || (val >= 3302 && val <= 3311) || (val >= 3313 && val <= 3314) || (val >= 3330 && val <= 3340) || (val >= 3342 && val <= 3344) || (val >= 3346 && val <= 3386) || (val >= 3389 && val <= 3392) || (val >= 3398 && val <= 3400) || (val >= 3402 && val <= 3404) || (val >= 3406 && val <= 3407) || (val >= 3412 && val <= 3425) || (val >= 3430 && val <= 3455) || (val >= 3458 && val <= 3459) || (val >= 3461 && val <= 3478) || (val >= 3482 && val <= 3505) || (val >= 3507 && val <= 3515) || (val == 3517) || (val >= 3520 && val <= 3526) || (val >= 3535 && val <= 3537) || (val >= 3544 && val <= 3551) || (val >= 3558 && val <= 3567) || (val >= 3570 && val <= 3572) || (val >= 3585 && val <= 3632) || (val >= 3634 && val <= 3635) || (val >= 3648 && val <= 3654) || (val >= 3663 && val <= 3675) || (val >= 3713 && val <= 3714) || (val == 3716) || (val >= 3718 && val <= 3722) || (val >= 3724 && val <= 3747) || (val == 3749) || (val >= 3751 && val <= 3760) || (val >= 3762 && val <= 3763) || (val == 3773) || (val >= 3776 && val <= 3780) || (val == 3782) || (val >= 3792 && val <= 3801) || (val >= 3804 && val <= 3807) || (val >= 3840 && val <= 3863) || (val >= 3866 && val <= 3892) || (val == 3894) || (val == 3896) || (val >= 3902 && val <= 3911) || (val >= 3913 && val <= 3948) || (val == 3967) || (val == 3973) || (val >= 3976 && val <= 3980) || (val >= 4030 && val <= 4037) || (val >= 4039 && val <= 4044) || (val >= 4046 && val <= 4058) || (val >= 4096 && val <= 4140) || (val == 4145) || (val == 4152) || (val >= 4155 && val <= 4156) || (val >= 4159 && val <= 4183) || (val >= 4186 && val <= 4189) || (val >= 4193 && val <= 4208) || (val >= 4213 && val <= 4225) || (val >= 4227 && val <= 4228) || (val >= 4231 && val <= 4236) || (val >= 4238 && val <= 4252) || (val >= 4254 && val <= 4293) || (val == 4295) || (val == 4301) || (val >= 4304 && val <= 4680) || (val >= 4682 && val <= 4685) || (val >= 4688 && val <= 4694) || (val == 4696) || (val >= 4698 && val <= 4701) || (val >= 4704 && val <= 4744) || (val >= 4746 && val <= 4749) || (val >= 4752 && val <= 4784) || (val >= 4786 && val <= 4789) || (val >= 4792 && val <= 4798) || (val == 4800) || (val >= 4802 && val <= 4805) || (val >= 4808 && val <= 4822) || (val >= 4824 && val <= 4880) || (val >= 4882 && val <= 4885) || (val >= 4888 && val <= 4954) || (val >= 4960 && val <= 4988) || (val >= 4992 && val <= 5007) || (val >= 5024 && val <= 5109) || (val >= 5112 && val <= 5117) || (val >= 5121 && val <= 5759) || (val >= 5761 && val <= 5786) || (val >= 5792 && val <= 5880) || (val >= 5888 && val <= 5900) || (val >= 5902 && val <= 5905) || (val >= 5920 && val <= 5937) || (val >= 5941 && val <= 5942) || (val >= 5952 && val <= 5969) || (val >= 5984 && val <= 5996) || (val >= 5998 && val <= 6000) || (val >= 6016 && val <= 6067) || (val == 6070) || (val >= 6078 && val <= 6085) || (val >= 6087 && val <= 6088) || (val >= 6100 && val <= 6106) || (val == 6108) || (val >= 6112 && val <= 6121) || (val >= 6160 && val <= 6169) || (val >= 6176 && val <= 6264) || (val >= 6272 && val <= 6276) || (val >= 6279 && val <= 6312) || (val == 6314) || (val >= 6320 && val <= 6389) || (val >= 6400 && val <= 6430) || (val >= 6435 && val <= 6438) || (val >= 6441 && val <= 6443) || (val >= 6448 && val <= 6449) || (val >= 6451 && val <= 6456) || (val >= 6470 && val <= 6509) || (val >= 6512 && val <= 6516) || (val >= 6528 && val <= 6571) || (val >= 6576 && val <= 6601) || (val >= 6608 && val <= 6618) || (val >= 6656 && val <= 6678) || (val >= 6681 && val <= 6682) || (val >= 6686 && val <= 6741) || (val == 6743) || (val == 6753) || (val >= 6755 && val <= 6756) || (val >= 6765 && val <= 6770) || (val >= 6784 && val <= 6793) || (val >= 6800 && val <= 6809) || (val >= 6816 && val <= 6829) || (val >= 6916 && val <= 6963) || (val == 6965) || (val == 6971) || (val >= 6973 && val <= 6977) || (val >= 6979 && val <= 6987) || (val >= 6992 && val <= 7018) || (val >= 7028 && val <= 7036) || (val >= 7042 && val <= 7073) || (val >= 7078 && val <= 7079) || (val == 7082) || (val >= 7086 && val <= 7141) || (val == 7143) || (val >= 7146 && val <= 7148) || (val == 7150) || (val >= 7154 && val <= 7155) || (val >= 7164 && val <= 7211) || (val >= 7220 && val <= 7221) || (val >= 7227 && val <= 7241) || (val >= 7245 && val <= 7304) || (val >= 7312 && val <= 7354) || (val >= 7357 && val <= 7367) || (val == 7379) || (val == 7393) || (val >= 7401 && val <= 7404) || (val >= 7406 && val <= 7411) || (val >= 7413 && val <= 7415) || (val == 7418) || (val >= 7424 && val <= 7615) || (val >= 7680 && val <= 7957) || (val >= 7960 && val <= 7965) || (val >= 7968 && val <= 8005) || (val >= 8008 && val <= 8013) || (val >= 8016 && val <= 8023) || (val == 8025) || (val == 8027) || (val == 8029) || (val >= 8031 && val <= 8061) || (val >= 8064 && val <= 8116) || (val >= 8118 && val <= 8124) || (val == 8126) || (val >= 8130 && val <= 8132) || (val >= 8134 && val <= 8140) || (val >= 8144 && val <= 8147) || (val >= 8150 && val <= 8155) || (val >= 8160 && val <= 8172) || (val >= 8178 && val <= 8180) || (val >= 8182 && val <= 8188) || (val == 8206) || (val == 8305) || (val == 8319) || (val >= 8336 && val <= 8348) || (val == 8450) || (val == 8455) || (val >= 8458 && val <= 8467) || (val == 8469) || (val >= 8473 && val <= 8477) || (val == 8484) || (val == 8486) || (val == 8488) || (val >= 8490 && val <= 8493) || (val >= 8495 && val <= 8505) || (val >= 8508 && val <= 8511) || (val >= 8517 && val <= 8521) || (val >= 8526 && val <= 8527) || (val >= 8544 && val <= 8584) || (val >= 9014 && val <= 9082) || (val == 9109) || (val >= 9372 && val <= 9449) || (val == 9900) || (val >= 10240 && val <= 10495) || (val >= 11264 && val <= 11310) || (val >= 11312 && val <= 11358) || (val >= 11360 && val <= 11492) || (val >= 11499 && val <= 11502) || (val >= 11506 && val <= 11507) || (val >= 11520 && val <= 11557) || (val == 11559) || (val == 11565) || (val >= 11568 && val <= 11623) || (val >= 11631 && val <= 11632) || (val >= 11648 && val <= 11670) || (val >= 11680 && val <= 11686) || (val >= 11688 && val <= 11694) || (val >= 11696 && val <= 11702) || (val >= 11704 && val <= 11710) || (val >= 11712 && val <= 11718) || (val >= 11720 && val <= 11726) || (val >= 11728 && val <= 11734) || (val >= 11736 && val <= 11742) || (val >= 12293 && val <= 12295) || (val >= 12321 && val <= 12329) || (val >= 12334 && val <= 12335) || (val >= 12337 && val <= 12341) || (val >= 12344 && val <= 12348) || (val >= 12353 && val <= 12438) || (val >= 12445 && val <= 12447) || (val >= 12449 && val <= 12538) || (val >= 12540 && val <= 12543) || (val >= 12549 && val <= 12591) || (val >= 12593 && val <= 12686) || (val >= 12688 && val <= 12735) || (val >= 12784 && val <= 12828) || (val >= 12832 && val <= 12879) || (val >= 12896 && val <= 12923) || (val >= 12927 && val <= 12976) || (val >= 12992 && val <= 13003) || (val >= 13008 && val <= 13174) || (val >= 13179 && val <= 13277) || (val >= 13280 && val <= 13310) || (val == 13312) || (val == 19903) || (val == 19968) || (val == 40956) || (val >= 40960 && val <= 42124) || (val >= 42192 && val <= 42508) || (val >= 42512 && val <= 42539) || (val >= 42560 && val <= 42606) || (val >= 42624 && val <= 42653) || (val >= 42656 && val <= 42735) || (val >= 42738 && val <= 42743) || (val >= 42786 && val <= 42887) || (val >= 42889 && val <= 42943) || (val >= 42946 && val <= 42954) || (val >= 42997 && val <= 43009) || (val >= 43011 && val <= 43013) || (val >= 43015 && val <= 43018) || (val >= 43020 && val <= 43044) || (val == 43047) || (val >= 43056 && val <= 43063) || (val >= 43072 && val <= 43123) || (val >= 43136 && val <= 43203) || (val >= 43214 && val <= 43225) || (val >= 43250 && val <= 43262) || (val >= 43264 && val <= 43301) || (val >= 43310 && val <= 43334) || (val >= 43346 && val <= 43347) || (val >= 43359 && val <= 43388) || (val >= 43395 && val <= 43442) || (val >= 43444 && val <= 43445) || (val >= 43450 && val <= 43451) || (val >= 43454 && val <= 43469) || (val >= 43471 && val <= 43481) || (val >= 43486 && val <= 43492) || (val >= 43494 && val <= 43518) || (val >= 43520 && val <= 43560) || (val >= 43567 && val <= 43568) || (val >= 43571 && val <= 43572) || (val >= 43584 && val <= 43586) || (val >= 43588 && val <= 43595) || (val == 43597) || (val >= 43600 && val <= 43609) || (val >= 43612 && val <= 43643) || (val >= 43645 && val <= 43695) || (val == 43697) || (val >= 43701 && val <= 43702) || (val >= 43705 && val <= 43709) || (val == 43712) || (val == 43714) || (val >= 43739 && val <= 43755) || (val >= 43758 && val <= 43765) || (val >= 43777 && val <= 43782) || (val >= 43785 && val <= 43790) || (val >= 43793 && val <= 43798) || (val >= 43808 && val <= 43814) || (val >= 43816 && val <= 43822) || (val >= 43824 && val <= 43881) || (val >= 43888 && val <= 44004) || (val >= 44006 && val <= 44007) || (val >= 44009 && val <= 44012) || (val >= 44016 && val <= 44025) || (val == 44032) || (val == 55203) || (val >= 55216 && val <= 55238) || (val >= 55243 && val <= 55291) || (val == 55296) || (val >= 56191 && val <= 56192) || (val >= 56319 && val <= 56320) || (val >= 57343 && val <= 57344) || (val >= 63743 && val <= 64109) || (val >= 64112 && val <= 64217) || (val >= 64256 && val <= 64262) || (val >= 64275 && val <= 64279) || (val >= 65313 && val <= 65338) || (val >= 65345 && val <= 65370) || (val >= 65382 && val <= 65470) || (val >= 65474 && val <= 65479) || (val >= 65482 && val <= 65487) || (val >= 65490 && val <= 65495) || (val >= 65498 && val <= 65500) || (val >= 65536 && val <= 65547) || (val >= 65549 && val <= 65574) || (val >= 65576 && val <= 65594) || (val >= 65596 && val <= 65597) || (val >= 65599 && val <= 65613) || (val >= 65616 && val <= 65629) || (val >= 65664 && val <= 65786) || (val == 65792) || (val == 65794) || (val >= 65799 && val <= 65843) || (val >= 65847 && val <= 65855) || (val >= 65933 && val <= 65934) || (val >= 66000 && val <= 66044) || (val >= 66176 && val <= 66204) || (val >= 66208 && val <= 66256) || (val >= 66304 && val <= 66339) || (val >= 66349 && val <= 66378) || (val >= 66384 && val <= 66421) || (val >= 66432 && val <= 66461) || (val >= 66463 && val <= 66499) || (val >= 66504 && val <= 66517) || (val >= 66560 && val <= 66717) || (val >= 66720 && val <= 66729) || (val >= 66736 && val <= 66771) || (val >= 66776 && val <= 66811) || (val >= 66816 && val <= 66855) || (val >= 66864 && val <= 66915) || (val == 66927) || (val >= 67072 && val <= 67382) || (val >= 67392 && val <= 67413) || (val >= 67424 && val <= 67431) || (val == 69632) || (val >= 69634 && val <= 69687) || (val >= 69703 && val <= 69709) || (val >= 69734 && val <= 69743) || (val >= 69762 && val <= 69810) || (val >= 69815 && val <= 69816) || (val >= 69819 && val <= 69825) || (val == 69837) || (val >= 69840 && val <= 69864) || (val >= 69872 && val <= 69881) || (val >= 69891 && val <= 69926) || (val == 69932) || (val >= 69942 && val <= 69959) || (val >= 69968 && val <= 70002) || (val >= 70004 && val <= 70006) || (val >= 70018 && val <= 70069) || (val >= 70079 && val <= 70088) || (val >= 70093 && val <= 70094) || (val >= 70096 && val <= 70111) || (val >= 70113 && val <= 70132) || (val >= 70144 && val <= 70161) || (val >= 70163 && val <= 70190) || (val >= 70194 && val <= 70195) || (val == 70197) || (val >= 70200 && val <= 70205) || (val >= 70272 && val <= 70278) || (val == 70280) || (val >= 70282 && val <= 70285) || (val >= 70287 && val <= 70301) || (val >= 70303 && val <= 70313) || (val >= 70320 && val <= 70366) || (val >= 70368 && val <= 70370) || (val >= 70384 && val <= 70393) || (val >= 70402 && val <= 70403) || (val >= 70405 && val <= 70412) || (val >= 70415 && val <= 70416) || (val >= 70419 && val <= 70440) || (val >= 70442 && val <= 70448) || (val >= 70450 && val <= 70451) || (val >= 70453 && val <= 70457) || (val >= 70461 && val <= 70463) || (val >= 70465 && val <= 70468) || (val >= 70471 && val <= 70472) || (val >= 70475 && val <= 70477) || (val == 70480) || (val == 70487) || (val >= 70493 && val <= 70499) || (val >= 70656 && val <= 70711) || (val >= 70720 && val <= 70721) || (val == 70725) || (val >= 70727 && val <= 70747) || (val == 70749) || (val >= 70751 && val <= 70753) || (val >= 70784 && val <= 70834) || (val == 70841) || (val >= 70843 && val <= 70846) || (val == 70849) || (val >= 70852 && val <= 70855) || (val >= 70864 && val <= 70873) || (val >= 71040 && val <= 71089) || (val >= 71096 && val <= 71099) || (val == 71102) || (val >= 71105 && val <= 71131) || (val >= 71168 && val <= 71218) || (val >= 71227 && val <= 71228) || (val == 71230) || (val >= 71233 && val <= 71236) || (val >= 71248 && val <= 71257) || (val >= 71296 && val <= 71338) || (val == 71340) || (val >= 71342 && val <= 71343) || (val == 71350) || (val == 71352) || (val >= 71360 && val <= 71369) || (val >= 71424 && val <= 71450) || (val >= 71456 && val <= 71457) || (val == 71462) || (val >= 71472 && val <= 71487) || (val >= 71680 && val <= 71726) || (val == 71736) || (val == 71739) || (val >= 71840 && val <= 71922) || (val >= 71935 && val <= 71942) || (val == 71945) || (val >= 71948 && val <= 71955) || (val >= 71957 && val <= 71958) || (val >= 71960 && val <= 71989) || (val >= 71991 && val <= 71992) || (val == 71997) || (val >= 71999 && val <= 72002) || (val >= 72004 && val <= 72006) || (val >= 72016 && val <= 72025) || (val >= 72096 && val <= 72103) || (val >= 72106 && val <= 72147) || (val >= 72156 && val <= 72159) || (val >= 72161 && val <= 72164) || (val == 72192) || (val >= 72199 && val <= 72200) || (val >= 72203 && val <= 72242) || (val >= 72249 && val <= 72250) || (val >= 72255 && val <= 72262) || (val == 72272) || (val >= 72279 && val <= 72280) || (val >= 72284 && val <= 72329) || (val == 72343) || (val >= 72346 && val <= 72354) || (val >= 72384 && val <= 72440) || (val >= 72704 && val <= 72712) || (val >= 72714 && val <= 72751) || (val >= 72766 && val <= 72773) || (val >= 72784 && val <= 72812) || (val >= 72816 && val <= 72847) || (val == 72873) || (val == 72881) || (val == 72884) || (val >= 72960 && val <= 72966) || (val >= 72968 && val <= 72969) || (val >= 72971 && val <= 73008) || (val == 73030) || (val >= 73040 && val <= 73049) || (val >= 73056 && val <= 73061) || (val >= 73063 && val <= 73064) || (val >= 73066 && val <= 73102) || (val >= 73107 && val <= 73108) || (val == 73110) || (val == 73112) || (val >= 73120 && val <= 73129) || (val >= 73440 && val <= 73458) || (val >= 73461 && val <= 73464) || (val == 73648) || (val >= 73664 && val <= 73684) || (val >= 73727 && val <= 74649) || (val >= 74752 && val <= 74862) || (val >= 74864 && val <= 74868) || (val >= 74880 && val <= 75075) || (val >= 77824 && val <= 78894) || (val >= 78896 && val <= 78904) || (val >= 82944 && val <= 83526) || (val >= 92160 && val <= 92728) || (val >= 92736 && val <= 92766) || (val >= 92768 && val <= 92777) || (val >= 92782 && val <= 92783) || (val >= 92880 && val <= 92909) || (val == 92917) || (val >= 92928 && val <= 92975) || (val >= 92983 && val <= 92997) || (val >= 93008 && val <= 93017) || (val >= 93019 && val <= 93025) || (val >= 93027 && val <= 93047) || (val >= 93053 && val <= 93071) || (val >= 93760 && val <= 93850) || (val >= 93952 && val <= 94026) || (val >= 94032 && val <= 94087) || (val >= 94099 && val <= 94111) || (val >= 94176 && val <= 94177) || (val == 94179) || (val >= 94192 && val <= 94193) || (val == 94208) || (val == 100343) || (val >= 100352 && val <= 101589) || (val == 101632) || (val == 101640) || (val >= 110592 && val <= 110878) || (val >= 110928 && val <= 110930) || (val >= 110948 && val <= 110951) || (val >= 110960 && val <= 111355) || (val >= 113664 && val <= 113770) || (val >= 113776 && val <= 113788) || (val >= 113792 && val <= 113800) || (val >= 113808 && val <= 113817) || (val == 113820) || (val == 113823) || (val >= 118784 && val <= 119029) || (val >= 119040 && val <= 119078) || (val >= 119081 && val <= 119142) || (val >= 119146 && val <= 119154) || (val >= 119171 && val <= 119172) || (val >= 119180 && val <= 119209) || (val >= 119214 && val <= 119272) || (val >= 119520 && val <= 119539) || (val >= 119648 && val <= 119672) || (val >= 119808 && val <= 119892) || (val >= 119894 && val <= 119964) || (val >= 119966 && val <= 119967) || (val == 119970) || (val >= 119973 && val <= 119974) || (val >= 119977 && val <= 119980) || (val >= 119982 && val <= 119993) || (val == 119995) || (val >= 119997 && val <= 120003) || (val >= 120005 && val <= 120069) || (val >= 120071 && val <= 120074) || (val >= 120077 && val <= 120084) || (val >= 120086 && val <= 120092) || (val >= 120094 && val <= 120121) || (val >= 120123 && val <= 120126) || (val >= 120128 && val <= 120132) || (val == 120134) || (val >= 120138 && val <= 120144) || (val >= 120146 && val <= 120485) || (val >= 120488 && val <= 120538) || (val >= 120540 && val <= 120596) || (val >= 120598 && val <= 120654) || (val >= 120656 && val <= 120712) || (val >= 120714 && val <= 120770) || (val >= 120772 && val <= 120779) || (val >= 120832 && val <= 121343) || (val >= 121399 && val <= 121402) || (val >= 121453 && val <= 121460) || (val >= 121462 && val <= 121475) || (val >= 121477 && val <= 121483) || (val >= 123136 && val <= 123180) || (val >= 123191 && val <= 123197) || (val >= 123200 && val <= 123209) || (val >= 123214 && val <= 123215) || (val >= 123584 && val <= 123627) || (val >= 123632 && val <= 123641) || (val >= 127248 && val <= 127278) || (val >= 127280 && val <= 127337) || (val >= 127344 && val <= 127404) || (val >= 127462 && val <= 127490) || (val >= 127504 && val <= 127547) || (val >= 127552 && val <= 127560) || (val >= 127568 && val <= 127569) || (val == 131072) || (val == 173789) || (val == 173824) || (val == 177972) || (val == 177984) || (val == 178205) || (val == 178208) || (val == 183969) || (val == 183984) || (val == 191456) || (val >= 194560 && val <= 195101) || (val == 196608) || (val == 201546) || (val == 983040) || (val == 1048573) || (val == 1048576) || (val == 1114109))
            //    return "L";
            else if ((val >= 768 && val <= 879) || (val >= 1155 && val <= 1161) || (val >= 1425 && val <= 1469) || (val == 1471) || (val >= 1473 && val <= 1474) || (val >= 1476 && val <= 1477) || (val == 1479) || (val >= 1552 && val <= 1562) || (val >= 1611 && val <= 1631) || (val == 1648) || (val >= 1750 && val <= 1756) || (val >= 1759 && val <= 1764) || (val >= 1767 && val <= 1768) || (val >= 1770 && val <= 1773) || (val == 1809) || (val >= 1840 && val <= 1866) || (val >= 1958 && val <= 1968) || (val >= 2027 && val <= 2035) || (val == 2045) || (val >= 2070 && val <= 2073) || (val >= 2075 && val <= 2083) || (val >= 2085 && val <= 2087) || (val >= 2089 && val <= 2093) || (val >= 2137 && val <= 2139) || (val >= 2259 && val <= 2273) || (val >= 2275 && val <= 2306) || (val == 2362) || (val == 2364) || (val >= 2369 && val <= 2376) || (val == 2381) || (val >= 2385 && val <= 2391) || (val >= 2402 && val <= 2403) || (val == 2433) || (val == 2492) || (val >= 2497 && val <= 2500) || (val == 2509) || (val >= 2530 && val <= 2531) || (val == 2558) || (val >= 2561 && val <= 2562) || (val == 2620) || (val >= 2625 && val <= 2626) || (val >= 2631 && val <= 2632) || (val >= 2635 && val <= 2637) || (val == 2641) || (val >= 2672 && val <= 2673) || (val == 2677) || (val >= 2689 && val <= 2690) || (val == 2748) || (val >= 2753 && val <= 2757) || (val >= 2759 && val <= 2760) || (val == 2765) || (val >= 2786 && val <= 2787) || (val >= 2810 && val <= 2815) || (val == 2817) || (val == 2876) || (val == 2879) || (val >= 2881 && val <= 2884) || (val == 2893) || (val >= 2901 && val <= 2902) || (val >= 2914 && val <= 2915) || (val == 2946) || (val == 3008) || (val == 3021) || (val == 3072) || (val == 3076) || (val >= 3134 && val <= 3136) || (val >= 3142 && val <= 3144) || (val >= 3146 && val <= 3149) || (val >= 3157 && val <= 3158) || (val >= 3170 && val <= 3171) || (val == 3201) || (val == 3260) || (val >= 3276 && val <= 3277) || (val >= 3298 && val <= 3299) || (val >= 3328 && val <= 3329) || (val >= 3387 && val <= 3388) || (val >= 3393 && val <= 3396) || (val == 3405) || (val >= 3426 && val <= 3427) || (val == 3457) || (val == 3530) || (val >= 3538 && val <= 3540) || (val == 3542) || (val == 3633) || (val >= 3636 && val <= 3642) || (val >= 3655 && val <= 3662) || (val == 3761) || (val >= 3764 && val <= 3772) || (val >= 3784 && val <= 3789) || (val >= 3864 && val <= 3865) || (val == 3893) || (val == 3895) || (val == 3897) || (val >= 3953 && val <= 3966) || (val >= 3968 && val <= 3972) || (val >= 3974 && val <= 3975) || (val >= 3981 && val <= 3991) || (val >= 3993 && val <= 4028) || (val == 4038) || (val >= 4141 && val <= 4144) || (val >= 4146 && val <= 4151) || (val >= 4153 && val <= 4154) || (val >= 4157 && val <= 4158) || (val >= 4184 && val <= 4185) || (val >= 4190 && val <= 4192) || (val >= 4209 && val <= 4212) || (val == 4226) || (val >= 4229 && val <= 4230) || (val == 4237) || (val == 4253) || (val >= 4957 && val <= 4959) || (val >= 5906 && val <= 5908) || (val >= 5938 && val <= 5940) || (val >= 5970 && val <= 5971) || (val >= 6002 && val <= 6003) || (val >= 6068 && val <= 6069) || (val >= 6071 && val <= 6077) || (val == 6086) || (val >= 6089 && val <= 6099) || (val == 6109) || (val >= 6155 && val <= 6157) || (val >= 6277 && val <= 6278) || (val == 6313) || (val >= 6432 && val <= 6434) || (val >= 6439 && val <= 6440) || (val == 6450) || (val >= 6457 && val <= 6459) || (val >= 6679 && val <= 6680) || (val == 6683) || (val == 6742) || (val >= 6744 && val <= 6750) || (val == 6752) || (val == 6754) || (val >= 6757 && val <= 6764) || (val >= 6771 && val <= 6780) || (val == 6783) || (val >= 6832 && val <= 6848) || (val >= 6912 && val <= 6915) || (val == 6964) || (val >= 6966 && val <= 6970) || (val == 6972) || (val == 6978) || (val >= 7019 && val <= 7027) || (val >= 7040 && val <= 7041) || (val >= 7074 && val <= 7077) || (val >= 7080 && val <= 7081) || (val >= 7083 && val <= 7085) || (val == 7142) || (val >= 7144 && val <= 7145) || (val == 7149) || (val >= 7151 && val <= 7153) || (val >= 7212 && val <= 7219) || (val >= 7222 && val <= 7223) || (val >= 7376 && val <= 7378) || (val >= 7380 && val <= 7392) || (val >= 7394 && val <= 7400) || (val == 7405) || (val == 7412) || (val >= 7416 && val <= 7417) || (val >= 7616 && val <= 7673) || (val >= 7675 && val <= 7679) || (val >= 8400 && val <= 8432) || (val >= 11503 && val <= 11505) || (val == 11647) || (val >= 11744 && val <= 11775) || (val >= 12330 && val <= 12333) || (val >= 12441 && val <= 12442) || (val >= 42607 && val <= 42610) || (val >= 42612 && val <= 42621) || (val >= 42654 && val <= 42655) || (val >= 42736 && val <= 42737) || (val == 43010) || (val == 43014) || (val == 43019) || (val >= 43045 && val <= 43046) || (val == 43052) || (val >= 43204 && val <= 43205) || (val >= 43232 && val <= 43249) || (val == 43263) || (val >= 43302 && val <= 43309) || (val >= 43335 && val <= 43345) || (val >= 43392 && val <= 43394) || (val == 43443) || (val >= 43446 && val <= 43449) || (val >= 43452 && val <= 43453) || (val == 43493) || (val >= 43561 && val <= 43566) || (val >= 43569 && val <= 43570) || (val >= 43573 && val <= 43574) || (val == 43587) || (val == 43596) || (val == 43644) || (val == 43696) || (val >= 43698 && val <= 43700) || (val >= 43703 && val <= 43704) || (val >= 43710 && val <= 43711) || (val == 43713) || (val >= 43756 && val <= 43757) || (val == 43766) || (val == 44005) || (val == 44008) || (val == 44013) || (val == 64286) || (val >= 65024 && val <= 65039) || (val >= 65056 && val <= 65071) || (val == 66045) || (val == 66272) || (val >= 66422 && val <= 66426) || (val >= 68097 && val <= 68099) || (val >= 68101 && val <= 68102) || (val >= 68108 && val <= 68111) || (val >= 68152 && val <= 68154) || (val == 68159) || (val >= 68325 && val <= 68326) || (val >= 68900 && val <= 68903) || (val >= 69291 && val <= 69292) || (val >= 69446 && val <= 69456) || (val == 69633) || (val >= 69688 && val <= 69702) || (val >= 69759 && val <= 69761) || (val >= 69811 && val <= 69814) || (val >= 69817 && val <= 69818) || (val >= 69888 && val <= 69890) || (val >= 69927 && val <= 69931) || (val >= 69933 && val <= 69940) || (val == 70003) || (val >= 70016 && val <= 70017) || (val >= 70070 && val <= 70078) || (val >= 70089 && val <= 70092) || (val == 70095) || (val >= 70191 && val <= 70193) || (val == 70196) || (val >= 70198 && val <= 70199) || (val == 70206) || (val == 70367) || (val >= 70371 && val <= 70378) || (val >= 70400 && val <= 70401) || (val >= 70459 && val <= 70460) || (val == 70464) || (val >= 70502 && val <= 70508) || (val >= 70512 && val <= 70516) || (val >= 70712 && val <= 70719) || (val >= 70722 && val <= 70724) || (val == 70726) || (val == 70750) || (val >= 70835 && val <= 70840) || (val == 70842) || (val >= 70847 && val <= 70848) || (val >= 70850 && val <= 70851) || (val >= 71090 && val <= 71093) || (val >= 71100 && val <= 71101) || (val >= 71103 && val <= 71104) || (val >= 71132 && val <= 71133) || (val >= 71219 && val <= 71226) || (val == 71229) || (val >= 71231 && val <= 71232) || (val == 71339) || (val == 71341) || (val >= 71344 && val <= 71349) || (val == 71351) || (val >= 71453 && val <= 71455) || (val >= 71458 && val <= 71461) || (val >= 71463 && val <= 71467) || (val >= 71727 && val <= 71735) || (val >= 71737 && val <= 71738) || (val >= 71995 && val <= 71996) || (val == 71998) || (val == 72003) || (val >= 72148 && val <= 72151) || (val >= 72154 && val <= 72155) || (val == 72160) || (val >= 72193 && val <= 72198) || (val >= 72201 && val <= 72202) || (val >= 72243 && val <= 72248) || (val >= 72251 && val <= 72254) || (val == 72263) || (val >= 72273 && val <= 72278) || (val >= 72281 && val <= 72283) || (val >= 72330 && val <= 72342) || (val >= 72344 && val <= 72345) || (val >= 72752 && val <= 72758) || (val >= 72760 && val <= 72765) || (val >= 72850 && val <= 72871) || (val >= 72874 && val <= 72880) || (val >= 72882 && val <= 72883) || (val >= 72885 && val <= 72886) || (val >= 73009 && val <= 73014) || (val == 73018) || (val >= 73020 && val <= 73021) || (val >= 73023 && val <= 73029) || (val == 73031) || (val >= 73104 && val <= 73105) || (val == 73109) || (val == 73111) || (val >= 73459 && val <= 73460) || (val >= 92912 && val <= 92916) || (val >= 92976 && val <= 92982) || (val == 94031) || (val >= 94095 && val <= 94098) || (val == 94180) || (val >= 113821 && val <= 113822) || (val >= 119143 && val <= 119145) || (val >= 119163 && val <= 119170) || (val >= 119173 && val <= 119179) || (val >= 119210 && val <= 119213) || (val >= 119362 && val <= 119364) || (val >= 121344 && val <= 121398) || (val >= 121403 && val <= 121452) || (val == 121461) || (val == 121476) || (val >= 121499 && val <= 121503) || (val >= 121505 && val <= 121519) || (val >= 122880 && val <= 122886) || (val >= 122888 && val <= 122904) || (val >= 122907 && val <= 122913) || (val >= 122915 && val <= 122916) || (val >= 122918 && val <= 122922) || (val >= 123184 && val <= 123190) || (val >= 123628 && val <= 123631) || (val >= 125136 && val <= 125142) || (val >= 125252 && val <= 125258) || (val >= 917760 && val <= 917999))
                return "NSM";
            else if ((val == 1470) || (val == 1472) || (val == 1475) || (val == 1478) || (val >= 1488 && val <= 1514) || (val >= 1519 && val <= 1524) || (val >= 1984 && val <= 2026) || (val >= 2036 && val <= 2037) || (val == 2042) || (val >= 2046 && val <= 2069) || (val == 2074) || (val == 2084) || (val == 2088) || (val >= 2096 && val <= 2110) || (val >= 2112 && val <= 2136) || (val == 2142) || (val == 8207) || (val == 64285) || (val >= 64287 && val <= 64296) || (val >= 64298 && val <= 64310) || (val >= 64312 && val <= 64316) || (val == 64318) || (val >= 64320 && val <= 64321) || (val >= 64323 && val <= 64324) || (val >= 64326 && val <= 64335) || (val >= 67584 && val <= 67589) || (val == 67592) || (val >= 67594 && val <= 67637) || (val >= 67639 && val <= 67640) || (val == 67644) || (val >= 67647 && val <= 67669) || (val >= 67671 && val <= 67742) || (val >= 67751 && val <= 67759) || (val >= 67808 && val <= 67826) || (val >= 67828 && val <= 67829) || (val >= 67835 && val <= 67867) || (val >= 67872 && val <= 67897) || (val == 67903) || (val >= 67968 && val <= 68023) || (val >= 68028 && val <= 68047) || (val >= 68050 && val <= 68096) || (val >= 68112 && val <= 68115) || (val >= 68117 && val <= 68119) || (val >= 68121 && val <= 68149) || (val >= 68160 && val <= 68168) || (val >= 68176 && val <= 68184) || (val >= 68192 && val <= 68255) || (val >= 68288 && val <= 68324) || (val >= 68331 && val <= 68342) || (val >= 68352 && val <= 68405) || (val >= 68416 && val <= 68437) || (val >= 68440 && val <= 68466) || (val >= 68472 && val <= 68497) || (val >= 68505 && val <= 68508) || (val >= 68521 && val <= 68527) || (val >= 68608 && val <= 68680) || (val >= 68736 && val <= 68786) || (val >= 68800 && val <= 68850) || (val >= 68858 && val <= 68863) || (val >= 69248 && val <= 69289) || (val == 69293) || (val >= 69296 && val <= 69297) || (val >= 69376 && val <= 69415) || (val >= 69552 && val <= 69579) || (val >= 69600 && val <= 69622) || (val >= 124928 && val <= 125124) || (val >= 125127 && val <= 125135) || (val >= 125184 && val <= 125251) || (val == 125259) || (val >= 125264 && val <= 125273) || (val >= 125278 && val <= 125279))
                return "R";
            else if ((val >= 1536 && val <= 1541) || (val >= 1632 && val <= 1641) || (val >= 1643 && val <= 1644) || (val == 1757) || (val == 2274) || (val >= 68912 && val <= 68921) || (val >= 69216 && val <= 69246))
                return "AN";
            else if ((val == 1544) || (val == 1547) || (val == 1549) || (val >= 1563 && val <= 1564) || (val >= 1566 && val <= 1610) || (val >= 1645 && val <= 1647) || (val >= 1649 && val <= 1749) || (val >= 1765 && val <= 1766) || (val >= 1774 && val <= 1775) || (val >= 1786 && val <= 1805) || (val >= 1807 && val <= 1808) || (val >= 1810 && val <= 1839) || (val >= 1869 && val <= 1957) || (val == 1969) || (val >= 2144 && val <= 2154) || (val >= 2208 && val <= 2228) || (val >= 2230 && val <= 2247) || (val >= 64336 && val <= 64449) || (val >= 64467 && val <= 64829) || (val >= 64848 && val <= 64911) || (val >= 64914 && val <= 64967) || (val >= 65008 && val <= 65020) || (val >= 65136 && val <= 65140) || (val >= 65142 && val <= 65276) || (val >= 68864 && val <= 68899) || (val >= 69424 && val <= 69445) || (val >= 69457 && val <= 69465) || (val >= 126065 && val <= 126132) || (val >= 126209 && val <= 126269) || (val >= 126464 && val <= 126467) || (val >= 126469 && val <= 126495) || (val >= 126497 && val <= 126498) || (val == 126500) || (val == 126503) || (val >= 126505 && val <= 126514) || (val >= 126516 && val <= 126519) || (val == 126521) || (val == 126523) || (val == 126530) || (val == 126535) || (val == 126537) || (val == 126539) || (val >= 126541 && val <= 126543) || (val >= 126545 && val <= 126546) || (val == 126548) || (val == 126551) || (val == 126553) || (val == 126555) || (val == 126557) || (val == 126559) || (val >= 126561 && val <= 126562) || (val == 126564) || (val >= 126567 && val <= 126570) || (val >= 126572 && val <= 126578) || (val >= 126580 && val <= 126583) || (val >= 126585 && val <= 126588) || (val == 126590) || (val >= 126592 && val <= 126601) || (val >= 126603 && val <= 126619) || (val >= 126625 && val <= 126627) || (val >= 126629 && val <= 126633) || (val >= 126635 && val <= 126651))
                return "AL";
            else if (val == 8234)
                return "LRE";
            else if (val == 8235)
                return "RLE";
            else if (val == 8236)
                return "PDF";
            else if (val == 8237)
                return "LRO";
            else if (val == 8238)
                return "RLO";
            else if (val == 8294)
                return "LRI";
            else if (val == 8295)
                return "RLI";
            else if (val == 8296)
                return "FSI";
            else if (val == 8297)
                return "PDI";
            else
                return "L";
        }
	}
}
